Some embodiments relate generally to methods and apparatus for packet classification including, for example, packet classification using multiple classification conditions. For example, some embodiments relate to packet classification in which one condition that is satisfied during the classification triggers or initiates additional (or secondary) conditions.
Known methods of packet classification include algorithmic solutions. Algorithmic solutions typically rely on a database of fields of a data packet (or portions of a data packet) that are used in a policy to classify a data packet. Often the database is implemented in random access memory (“RAM”) such as dynamic random access memory (“DRAM”).
Additionally, known solutions represent a policy as a cross-product of the fields used in the policy to classify data packets. In other words, the fields in a policy are expanded such that each value of a field in a data packet that can satisfy a condition is represented in memory, and each condition in the policy is evaluated by determining whether the data packet has value and corresponds to one of the values represented in the memory. Thus, known solutions rely on large amounts of memory and this can greatly increase the cost and the size of hardware used to represent the policy. In algorithmic solutions, this typically precludes inclusion of storing the database in DRAM on a single chip with a processor. Because the database is stored off-chip from the processor, memory access latency and time increase, reducing performance.